Administrators of data storage systems are often required to replace logical storage units (LUNs) as the LUNs age, become obsolete, or become unreliable. In many cases, it is desired to transfer all data stored on an original LUN (i.e., a “source” LUN) to a new destination LUN (i.e., a “target” LUN) which will replace the source LUN. Data transfer from the source LUN to the target LUN is conducted using a process called “data migration.”
A typical data storage system also includes one or more host computing systems (i.e., “hosts”) connected to LUNs over high-speed paths. The LUNs may be provided in one or more disk arrays, and the hosts are configured to run one or more applications on behalf of users. The hosts may include tools for migrating data from a source LUN to a target LUN within an array or between arrays. These tools are designed to operate substantially transparently to users, i.e., to be run in the background with little or no effect on executing applications.
An example of a data migration tool is the PowerPath Migration Enabler (PPME), which is available as part of the PowerPath® driver from EMC Corporation of Hopkinton, Mass. As is known, the PowerPath® driver supports multiple data storage functions, including data migration, as well as multipathing, encryption, and other functions. PPME conducts data migration through several distinct states: Setup; Syncing; Source Selected; Target Selected; CommittedAndRedirected (for native device names only); and Committed. During data migration, data is bulk copied from the source LUN to the target LUN and I/O requests for READs and WRITEs are sent to either the source LUN, the target LUN, or both, depending on the state of migration and on whether the I/O requests are READs or WRITEs. Also, in cases where the source LUN and the target LUN are identified with pseudonames, the pseudonames are automatically swapped, so that the target LUN assumes the identity of the source LUN. In cases where the source LUN and target LUN are identified with native names, user applications are manually reconfigured to swap the names. At the conclusion of data migration, the entire contents of the source LUN have been moved to the target LUN, and subsequent I/O requests are directed exclusively to the target LUN.